#ifndef __FACTORY_HPP__
#define __FACTORY_HPP__

#include "product.hpp"

class Factory {
public:
	virtual ~Factory() = 0;
	virtual Product *createProduct() = 0;
	void setFactoryFlag(int flag) { _flag = flag; }
protected:
	Factory();
	int _flag;
};

inline Factory::Factory()
	: _flag(0)
{
	cout<<__func__<<endl;
}

inline Factory::~Factory()
{
	cout<<__func__<<endl;
}

#endif /* end of include guard */
